﻿using HCQ2_Model.BaneUser.APP.Params;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using HCQ2_Model.BaneUser.APP.Params;
using System.ComponentModel.DataAnnotations;

namespace HCQ2_Model.DocModel.APIModel
{
    /// <summary>
    ///  商城树
    /// </summary>
    public class EmpowerTree: BaseBaneModel
    {
        /// <summary>
        ///  经度
        /// </summary>
        public decimal gps_x { get; set; }
        /// <summary>
        ///  纬度
        /// </summary>
        public decimal gps_y { get; set; }
        /// <summary>
        ///  服务类别
        /// </summary>
        public string bs_type { get; set; }
        /// <summary>
        ///  权限角色代码
        /// </summary>
        public string roleCode { get; set; }
        public int user { get; set; }
        /// <summary>
        ///  权限类别
        ///  false：无需权限
        ///  true：权限控制
        /// </summary>
        public bool limitType { get; set; }
        /// <summary>
        ///  是否收藏
        ///  -1：全部
        ///  0：未收藏
        ///  1：已收藏
        /// </summary>
        public int favorite { get; set; } = -1;
        /// <summary>
        ///  分组名称
        /// </summary>
        public string groupName { get; set; }
        /// <summary>
        ///  返回数据格式
        ///  tree：树型格式
        ///  list：数组格式
        /// </summary>
        public string dataFormat { get; set; } = "tree";
        /// <summary>
        ///  是否推荐
        ///  -1：全部
        ///  1：推荐
        ///  0：不推荐
        /// </summary>
        public int isPush { get; set; } = -1;
        /// <summary>
        ///  是否推荐
        ///  true：关注
        ///  false：正常
        /// </summary>
        public bool recomType { get; set; } = false;
        /// <summary>
        ///  关键字
        ///  模糊匹配：目录名称、备注
        /// </summary>
        public string keyword { get; set; }
        /// <summary>
        ///  父目录path
        /// </summary>
        public string folder_path { get; set; }
        /// <summary>
        ///  素材格式
        /// </summary>
        public string materType { get; set; }
        /// <summary>
        ///  目录范围
        ///  全部：-1；
        ///  私有：0；
        ///  公有：1
        /// </summary>
        public int treeScope { get; set; } = -1;
        /// <summary>
        ///  树类别
        ///  VRManager：素材商城
        ///  VRWorks：作品
        ///  VRModule：组件
        ///  DDCircle：度度圈
        ///  VRBuilding：楼宇
        ///  QDMaterial ：忆度元宇宙素材
        /// </summary>
        //[Required]
        public string treeType { get; set; } = string.Empty;
        /// <summary>
        ///  产品类别（int）【全部=-1； VRPPT=1； 创客=2； 头记=3； 校史馆=4；】
        /// </summary>
        public int proType { get; set; } = -1;
        /// <summary>
        ///  所属单位
        /// </summary>
        public string unitCode { get; set; }
    }
    /// <summary>
    ///  【奇点元宇宙】素材目录导航
    /// </summary>
    public class QDMaterialTree: BaseBaneModel
    {
        /// <summary>
        ///  经度
        /// </summary>
        public decimal gps_x { get; set; }
        /// <summary>
        ///  纬度
        /// </summary>
        public decimal gps_y { get; set; }
        /// <summary>
        ///  服务类别
        /// </summary>
        public string bs_type { get; set; }
        /// <summary>
        ///  权限角色代码
        /// </summary>
        public string roleCode { get; set; }
        public int user { get; set; }
        /// <summary>
        ///  是否收藏
        ///  -1：全部
        ///  0：未收藏
        ///  1：已收藏
        /// </summary>
        public int favorite { get; set; } = -1;
        /// <summary>
        ///  分组名称
        /// </summary>
        public string groupName { get; set; }
        /// <summary>
        ///  返回数据格式
        ///  tree：树型格式
        ///  list：数组格式
        /// </summary>
        public string dataFormat { get; set; } = "tree";
        /// <summary>
        ///  是否推荐
        ///  -1：全部
        ///  1：推荐
        ///  0：不推荐
        /// </summary>
        public int isPush { get; set; } = -1;
        /// <summary>
        ///  是否推荐
        ///  true：关注
        ///  false：正常
        /// </summary>
        public bool recomType { get; set; } = false;
        /// <summary>
        ///  关键字
        ///  模糊匹配：目录名称、备注
        /// </summary>
        public string keyword { get; set; }
        /// <summary>
        ///  父目录path
        /// </summary>
        public string folder_path { get; set; }
        /// <summary>
        ///  素材格式
        /// </summary>
        public string materType { get; set; }
        /// <summary>
        ///  目录范围
        ///  全部：-1；
        ///  私有：0；
        ///  公有：1
        /// </summary>
        public int treeScope { get; set; } = -1;
        /// <summary>
        ///  树类别
        ///  VRManager：素材商城
        ///  VRWorks：作品
        ///  VRModule：组件
        ///  DDCircle：度度圈
        ///  VRBuilding：楼宇
        ///  QDMaterial ：忆度元宇宙素材
        /// </summary>
        //[Required]
        public string treeType { get; set; } = string.Empty;
        /// <summary>
        ///  产品类别（int）【全部=-1； VRPPT=1； 创客=2； 头记=3； 校史馆=4；】
        /// </summary>
        public int proType { get; set; } = -1;
        /// <summary>
        ///  所属单位
        /// </summary>
        public string unitCode { get; set; }
    }
    /// <summary>
    ///  查看商品
    /// </summary>
    public class ViewGoodsModel: BaseBaneModel
    {
        /// <summary>
        ///  商城类别
        /// VLions= VLions；
        /// 度度圈=DDCircle；
        /// </summary>
        public string shopType { get; set; } = "VLions";
        /// <summary>
        ///  folder_path
        /// </summary>
        public string dd_path { get; set; }
        /// <summary>
        ///  是否实物
        ///  -1=全部
        ///  0=否
        ///  1=是
        /// </summary>
        public int is_entity { get; set; } = -1;
        /// <summary>
        ///  是否推荐【商铺-商品】
        ///  全部=-1；
        ///  推荐=1；
        ///  不推荐=0；
        /// </summary>
        public int store_top { get; set; } = -1;
        /// <summary>
        ///  度度圈关联商品id
        /// </summary>
        public int dd_id { get; set; }
        /// <summary>
        ///  权限角色代码
        /// </summary>
        public string roleCode { get; set; }
        /// <summary>
        ///  作品/素材 状态
        ///  0：私有
        ///  1：待审核
        ///  4：已下架
        ///  5：已上架
        ///  6：审核未通过
        /// </summary>
        public int fileStatus { get; set; } = 5;
        /// <summary>
        ///  地址拼接方式
        ///  false：IP
        ///  true：域名
        /// </summary>
        public bool requestType { get; set; } = false;
        /// <summary>
        ///  商品来源
        ///  -1：全部
        ///  0：个人商品
        ///  1：自营商品
        /// </summary>
        public int supplyType { get; set; } = -1;
        /// <summary>
        ///  素材格式
        /// </summary>
        public string materType { get; set; }
        /// <summary>
        ///  作品代码
        /// </summary>
        public string fileCode { get; set; }
        /// <summary>
        ///  是否已购买
        ///  -1：全部
        ///  0：未购买
        ///  1：已购买
        /// </summary>
        public int isPay { get; set; } = -1;
        /// <summary>
        ///  关键字【作品标题、作品简介】
        /// </summary>
        public string keyword { get; set; }
        /// <summary>
        ///  修改开始时间 yyyy-MM-dd
        /// </summary>
        public string updateStart { get; set; }
        /// <summary>
        ///  修改截止时间 yyyy-MM-dd
        /// </summary>
        public string updateEnd { get; set; }
        /// <summary>
        ///  作品分类【下拉：docClassify】
        /// </summary>
        public string entryType { get; set; }
        /// <summary>
        ///  树节点ID
        /// </summary>
        public int id { get; set; }
        /// <summary>
        ///  产品类别
        ///  -1：全部
        ///  0：创客
        ///  1：VR
        ///  2：虚拟仿真
        ///  3：头记
        ///  4：校史馆
        /// </summary>
        public int proType { get; set; } = -1;
        /// <summary>
        ///  产品形态
        ///  -1：全部
        ///  1：VR
        ///  2：虚拟仿真
        ///  3：AR
        /// </summary>
        public int proForm { get; set; } = -1;
        /// <summary>
        ///  所属单位
        /// </summary>
        public string orgUnit { get; set; }
        /// <summary>
        ///  创建人所属单位代码
        /// </summary>
        public string unitCode { get; set; }
        /// <summary>
        ///  类别
        ///  0：素材
        ///  1：作品
        ///  2：组件
        ///  3：度度圈
        /// </summary>
        public int vrType { get; set; } = 0;
        /// <summary>
        ///  导航树节点path
        /// </summary>
        public string folder_path { get; set; }
        /// <summary>
        ///  供应商：下拉
        ///  Focus，Vive
        /// </summary>
        public string supplier { get; set; }
        /// <summary>
        ///  权限：下拉
        ///  VIP、SVIP
        /// </summary>
        public string folder_limit { get; set; }
        /// <summary>
        ///  价格排序
        ///  0：不排序
        ///  1：升序
        ///  2：降序
        ///  3：修改时间从新到旧
        ///  4：创建时间从新到旧
        ///  5：序号从大到小
        ///  6：序号从小到大
        /// </summary>
        public int priceOrder { get; set; } = 0;
        /// <summary>
        ///  商品类别
        ///  0：全部
        ///  1：推荐（根据推荐字段获取is_recommend=true）
        ///  2：本月火热（下载量倒序：down_number）
        ///  3：最新上架（审核时间倒序：approve_time）
        ///  6：收藏（自己的收藏商品：T_VRFavoriteGoods）
        ///  7：免费共享
        ///  8：收费
        ///  9：VIP+SVIP
        ///  10：关注
        ///  11：赞过
        /// </summary>
        public int goodsType { get; set; } = 0;
        /// <summary>
        ///  第几页
        /// </summary>
        public int page { get; set; } = 1;
        /// <summary>
        ///  每页数量
        /// </summary>
        public int rows { get; set; } = 10;
    }
    public class SynchronVRModel: BaseBaneModel
    {
        /// <summary>
        ///  树节点ID
        /// </summary>
        public int id { get; set; }
    }

    public class GoodDetialModel: BaseBaneModel
    {
        /// <summary>
        ///  商品id
        /// </summary>
        //[Required(ErrorMessage ="商品id比传项！")]
        public int file_id { get; set; }
        /// <summary>
        ///  作品代码
        /// </summary>
        public string file_code { get; set; }
    }

    public class FolderDetialModel : BaseBaneModel
    {
        /// <summary>
        ///  目录id
        /// </summary>
        [Required(ErrorMessage = "目录id比传项！")]
        public int folder_id { get; set; }
        /// <summary>
        ///  经度
        /// </summary>
        public decimal gps_x { get; set; }
        /// <summary>
        ///  纬度
        /// </summary>
        public decimal gps_y { get; set; }
    }

    /// <summary>
    ///  验证用户是否关注、点赞某个其他用户模型
    /// </summary>
    public class FocusUserModel
    {
        /// <summary>
        ///  关注、点赞者userid
        /// </summary>
        [Required(ErrorMessage = "关注、点赞者userid比传项！")]
        public string userid { get; set; }
        /// <summary>
        ///  被关注、点赞者userid
        /// </summary>
        [Required(ErrorMessage = "被关注、点赞者be_userid比传项！")]
        public string be_userid { get; set; }
    }
}